package commonco

// 加成与随机数
// y = Path + rand(Random)
type ValueRandom struct {
	// @alias 值
	Value float64
	// @alias 随机
	Random float64
}

//func (bonus *ValueRandom) Clone() *ValueRandom {
//	return &ValueRandom{
//		Value:  bonus.Value,
//		Random: bonus.Random,
//	}
//}

//
//func NewValueRange() *ValueRange {
//	return &ValueRange{
//		Min: 1.0,
//		Max: 1.0,
//	}
//}

// y = Path + rand(Random)
type ValueRange struct {
	// @alias 最小值
	Z最小值 float64
	// @alias 最大值
	Z最大值 float64 `value:"4294967295"`
}

// 最大值和最小值限制
type ValueLimit struct {
	// @alias 最小值
	Z最小值 float64
	// @alias 最大值
	Z最大值 float64 `value:"4294967295"`
}

type S点 struct {
	// @alias x
	X float64
	// @alias y
	Y float64
	// @alias z
	Z float64
}

type S尺寸 struct {
	// @alias width
	Width float64
	// @alias height
	Height float64
}

type S二维点 struct {
	// @alias x
	X float64
	// @alias y
	Y float64
}

// y=x*(1+系数)*乘数+加成
type X修正公式_属性 struct {
	// @alias 属性
	J属性 string `link:"属性"`
	// @alias 加成
	J加成 float64
	// @alias 系数
	X系数 float64
	// @alias 乘数
	C乘数 float64
}

// y=x*(1+系数)*乘数+加成
type X修正公式 struct {
	// @alias 加成
	J加成 float64
	// @alias 系数
	X系数 float64
	// @alias 乘数
	C乘数 float64 `value:"1"`
}

// @alias 数值修正
type S数值修正 struct {
	// @alias 操作
	C操作 S数值操作
	// @alias 值
	Z值 float64
	// @alias 限制
	X限制 *ValueRange
}

// @schema_go
// @schema_ts
// @alias 数值操作
type S数值操作 int

const (
	S数值操作_设置 S数值操作 = iota
	S数值操作_增加
	S数值操作_减少
	S数值操作_乘以
	S数值操作_除以
)
